↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
REVERSE_IN_AG(X1s, X2s) → U1_AG(X1s, X2s, reverse_in_agg(X1s, [], X2s))
REVERSE_IN_AG(X1s, X2s) → REVERSE_IN_AGG(X1s, [], X2s)
REVERSE_IN_AGG(.(X, X1s), X2s, Ys) → U2_AGG(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
REVERSE_IN_AGG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → U2_AAG(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
REVERSE_IN_AG(X1s, X2s) → U1_AG(X1s, X2s, reverse_in_agg(X1s, [], X2s))
REVERSE_IN_AG(X1s, X2s) → REVERSE_IN_AGG(X1s, [], X2s)
REVERSE_IN_AGG(.(X, X1s), X2s, Ys) → U2_AGG(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
REVERSE_IN_AGG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → U2_AAG(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
REVERSE_IN_AAG(Ys) → REVERSE_IN_AAG(Ys)
REVERSE_IN_AAG(Ys) → REVERSE_IN_AAG(Ys)
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
REVERSE_IN_AG(X1s, X2s) → U1_AG(X1s, X2s, reverse_in_agg(X1s, [], X2s))
REVERSE_IN_AG(X1s, X2s) → REVERSE_IN_AGG(X1s, [], X2s)
REVERSE_IN_AGG(.(X, X1s), X2s, Ys) → U2_AGG(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
REVERSE_IN_AGG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → U2_AAG(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
REVERSE_IN_AG(X1s, X2s) → U1_AG(X1s, X2s, reverse_in_agg(X1s, [], X2s))
REVERSE_IN_AG(X1s, X2s) → REVERSE_IN_AGG(X1s, [], X2s)
REVERSE_IN_AGG(.(X, X1s), X2s, Ys) → U2_AGG(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
REVERSE_IN_AGG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → U2_AAG(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
reverse_in_ag(X1s, X2s) → U1_ag(X1s, X2s, reverse_in_agg(X1s, [], X2s))
reverse_in_agg([], Xs, Xs) → reverse_out_agg([], Xs, Xs)
reverse_in_agg(.(X, X1s), X2s, Ys) → U2_agg(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
reverse_in_aag([], Xs, Xs) → reverse_out_aag([], Xs, Xs)
reverse_in_aag(.(X, X1s), X2s, Ys) → U2_aag(X, X1s, X2s, Ys, reverse_in_aag(X1s, .(X, X2s), Ys))
U2_aag(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_aag(.(X, X1s), X2s, Ys)
U2_agg(X, X1s, X2s, Ys, reverse_out_aag(X1s, .(X, X2s), Ys)) → reverse_out_agg(.(X, X1s), X2s, Ys)
U1_ag(X1s, X2s, reverse_out_agg(X1s, [], X2s)) → reverse_out_ag(X1s, X2s)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
REVERSE_IN_AAG(.(X, X1s), X2s, Ys) → REVERSE_IN_AAG(X1s, .(X, X2s), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
REVERSE_IN_AAG(Ys) → REVERSE_IN_AAG(Ys)
REVERSE_IN_AAG(Ys) → REVERSE_IN_AAG(Ys)